package com.wjh.www.util;

import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
import java.util.logging.*;

/**
 * @author wjh
 * @date 2021/5/18 11:40
 * @Package com.wjh.www.util
 * 日志工具类
 */
public class LoggerUtil {
    /**
     * 定义全局logger
     */
    private static final Logger logger = Logger.getLogger("myLogger");

    /**
     * 对外提供获取Logger的方法
     *
     * @return 返回Logger对象
     */
    public static Logger getLogger() {
        //设置日志等级
        logger.setLevel(Level.ALL);
        for (Handler h : logger.getHandlers()) {
            //防止出现多个日志文件
            h.close();
        }
        try {
            //日志文件的输出路径
            FileHandler fileHandler = new FileHandler("C:\\Users\\26913\\Desktop\\log\\AnyView.log", true);
            //设置日志的输出格式
            fileHandler.setFormatter(new MyFormat());
            logger.addHandler(fileHandler);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return logger;
    }
}

/**
 * 自定义日志输出格式
 */
class MyFormat extends Formatter {
    @Override
    public String format(LogRecord record) {
        ZonedDateTime zdf = ZonedDateTime.now();
        String sDate = zdf.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
        return "[time：" + sDate + "]——" + "[level：" + record.getLevel().getName() + "]——" + "[location：" + record.getSourceClassName() + " " + record.getSourceMethodName() + "]——" + "[message：" + record.getMessage() + "]\n";
    }

}